﻿using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;

namespace kostenbuch
{
    /// <summary>
    /// Interaktionslogik für KontoHinzufuegen.xaml
    /// </summary>
    public partial class KontoHinzufuegen : Window
    {
        public KontoHinzufuegen()
        {
            InitializeComponent();
        }
        private void abbrechen_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
        /**
         *  Fürgt der Kontensammlung das eingegebe Wort hinzu.
         * 
         * */
        private void hinzugügen_Click(object sender, RoutedEventArgs e)
        {
            if (tb_K.Text != "" && Konto_Betrag.Text != "" && Konto_Betrag.Text != "Startbetrag" && tb_K.Text != "Kontoname")
            {
                kostenbuch.Properties.Settings.Default.Konto.Add(tb_K.Text);
                kostenbuch.Properties.Settings.Default.Save();

                double betrag = 0.0;
                //wenn double werte kein Komma enthalten, eingegebenen Punkt durch Komma ersetzen
                if (!betrag.ToString().Contains(","))
                    betrag = double.Parse(Konto_Betrag.Text.Replace('.', ','));
                //ansonsten eingegebenes Komma durch Punkt ersetzen
                else
                    betrag = double.Parse(Konto_Betrag.Text.Replace(',', '.'));
                Eintrag ein_temp = new Eintrag( DateTime.Today,
                                                tb_K.Text,
                                                betrag,
                                                false,
                                                "Zahlung",
                                                false,
                                                tb_K.Text,
                                                "Startguthaben vom neuen Konto " + tb_K.Text);

                TablePage.eintragList.Add(ein_temp);

                TablePage.save();
                MainWindow.unsaved = true;
                this.Close();
            }
        }
        /**
         * Löscht das in der ComboBox ausgewählte Item aus der Kontensammlung
         * Löscht alle Einträge die zu dem gelöschten Konto gehören
         * */
        private void b_Löschen_Click(object sender, RoutedEventArgs e)
        {            
            MessageBoxResult result = MessageBox.Show("Wirklich löschen? Alle zugehörigen Einträge werden mit gelöscht! Dies kann nicht Rückgängig gemacht werden!", "Konto löschen?", MessageBoxButton.YesNo, MessageBoxImage.Warning);
            if (result == MessageBoxResult.Yes)
            {
                for (int i = 0; i < TablePage.eintragList.Count; i++)
                {
                    if (TablePage.eintragList[i].konto == cBox_Löschen.SelectedItem.ToString())
                    {
                        TablePage.eintragList.RemoveAt(i);
                        i--;  //Eventuell unschön, aber wahrscheinlch nicht Fehleranfällig              
                    }                   
                }
                kostenbuch.Properties.Settings.Default.Konto.Remove(cBox_Löschen.SelectedItem.ToString());
                TablePage.save();
                this.Close();
            }            
        }

        private void tb_K_GotFocus(object sender, RoutedEventArgs e)
        {
            tb_K.Clear();
            tb_K.Foreground = Brushes.Black;
        }

        private void Konto_Betrag_GotFocus(object sender, RoutedEventArgs e)
        {
            Konto_Betrag.Clear();
            Konto_Betrag.Foreground = Brushes.Black;
        }

        private void Konto_Betrag_KeyDown(object sender, KeyEventArgs e)
        {
   
        }
    }
}
